/*
@author: ty
@file: 2022-11-03作业.go
@time: 2022/11/3 18:22
*/
package main

import "fmt"

//b := "*"
//i :=0
//for i < 8{
//	i++
//	fmt.Println(b)
//	b += "**"
//
//}



//for i :=1;i<=9 ; i++{
//	for y :=1;y<=i;y++{
//		fmt.Printf("%d*%d=%d ", y, i, y*i)
//	}
//	fmt.Println()
//}


//判断从键盘输入，字母数字字符是否为回文,如果将大写字符转化为小写字符，并移除多有非字母数字字符后，正向读和反向读都一样，那就是回文。
func main() {
	for {
		var str1 string
		fmt.Println("请输入一串字符串：")
		fmt.Scan(&str1)
		if str1 == "q" {
			break
		} else {
			s1 := make([]rune, 0, len(str1)) //构造一个切片 类型是[]rune
			for _, a := range str1 {
				if a < 48 || (a > 57 && a < 65) || a > 122 || (a > 90 && a < 97) {
					continue
					// 把不属于数字、字母筛选去除
				} else if a >= 65 && a <= 90 {
					s1 = append(s1, a+32)
					//把大写变成小写
				} else {
					s1 = append(s1, a)
				}
			}
			res := []rune(str1)

			var len1 = len(res)
			var halfLen = len1 / 2
			var i  int
			for i = 0; i < halfLen; i++ {
				if res[i] != res[len1-i-1] {
					break
				}
			}

			if i == halfLen {
				fmt.Println( "是回文")
			} else {
				fmt.Println( "不是回文")
			}
			}
		}
	}
